from collections import OrderedDict
import json

# 创建一个字典，并且在迭代或序列化这个字典的时候能够控制元素的顺序
# OrderedDict 内部维护一个根据键插入顺序排序的双向链表。每次当一个新的元素插入进来的时候，它会被放到链表的尾部。
# 对于一个已经存在的键的重复赋值不会改变键的顺序
# 一个OrderedDict的大小是一个普通字典的两倍，因为它内部维护着另外一个链表
def demo_1():
    d = OrderedDict()
    d['a'] = 1
    d['b'] = 2
    d['c'] = 3
    d['d'] = 4
    print(d)
    for key in d:
        print(key, d[key])
    j = json.dumps(d)
    print(j)

if __name__ == '__main__':
    demo_1()